
package ${packageName};

<#list imports as import>
import ${import};
</#list>

/**
* @version V1.0
* ${sourceTableDesc}:${sourceTable} 对应的VO模型类.
* @ClassName: ${underlineToCamel(sourceTable?lower_case,true?string)}Vo
* @Description: ${sourceTableDesc}:${sourceTable} 对应的VO模型类.
* @author: ${author}
* @date:   ${.now}
* @Copyright: Copyright (c) ${.now?string('yyyy')}
*/
@ApiModel("${sourceTableDesc}")
@ExcelIgnoreUnannotated
public class ${underlineToCamel(sourceTable?lower_case,true?string)}Vo implements Assignment, Serializable {
<#list columns as col>

    <#if col.dataType?lower_case == 'date' || col.dataType?lower_case == 'datetime'>
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
        <#if (col.columnComment)?length gt 0>
    @ApiModelProperty(value = "${col.columnComment}" ,dataType="${col.dataType}(${col.length!})" ,required= ${(!col.isNullable)?string})
    @ExcelProperty(value = "${col.columnComment}",converter = LocalDateTimeConverter.class)
        <#else>
    @ApiModelProperty(value = "${col.columnName}" ,dataType="${col.dataType}(${col.length!})" ,required= ${(!col.isNullable)?string})
    @ExcelProperty(value = "${col.columnName}",converter = LocalDateTimeConverter.class)
        </#if>
    <#else>
        <#if (col.columnComment)?length gt 0>
    // ${col.columnComment}
    @ApiModelProperty(value = "${col.columnComment}" ,dataType="${col.dataType}(${col.length!})" ,required= ${(!col.isNullable)?string})
    @ExcelProperty(value = "${col.columnComment}")
        <#else >
    // ${col.columnName}
    @ApiModelProperty(value = "${col.columnName}" ,dataType="${col.dataType}(${col.length!})" ,required= ${(!col.isNullable)?string})
    @ExcelProperty(value = "${col.columnName}")
        </#if>
    </#if>
    private ${getDataType(col.dataType)} ${underlineToCamel(col.columnName?lower_case,false?string)};
</#list>

<#list columns as col>
    public ${getDataType(col.dataType)} get${(col.columnName ? index_of('_') == 1) ? string (underlineToCamel(col.columnName?lower_case,false?string),underlineToCamel(col.columnName?lower_case,true?string))}(){
    return this.${underlineToCamel(col.columnName?lower_case,false?string)};
    }

    public void set${(col.columnName ? index_of('_') == 1) ? string (underlineToCamel(col.columnName?lower_case,false?string),underlineToCamel(col.columnName?lower_case,true?string))}(${getDataType(col.dataType)} ${underlineToCamel(col.columnName?lower_case,false?string)}){
    this.${underlineToCamel(col.columnName?lower_case,false?string)} = ${underlineToCamel(col.columnName?lower_case,false?string)};
    }
</#list>

    public ${underlineToCamel(sourceTable?lower_case,true?string)}Vo(){
    }

    @Override
    public String toString(){
        return " ${underlineToCamel(sourceTable?lower_case,true?string)}Vo ["
    <#list columns as col>
        <#if col_has_next>
             +" ${underlineToCamel(col.columnName?lower_case,false?string)} = " +${underlineToCamel(col.columnName?lower_case,false?string)} +" ,"
        <#else>
             +" ${underlineToCamel(col.columnName?lower_case,false?string)} = " +${underlineToCamel(col.columnName?lower_case,false?string)}
        </#if>
    </#list>
        +" ]";
    }

}